//
//  wingbeat_param.h
//  template4
//
//  Created by Xiaochen Lian on 5/16/12.
//  Copyright (c) 2012 University of California, Los Angeles. All rights reserved.
//

#ifndef template4_wingbeat_param_h
#define template4_wingbeat_param_h

#include "common.h"

class IWingbeat_param
{
public:
    virtual GLfloat comp_func(GLfloat phi) = 0;
    void set_u(GLfloat u_d, GLfloat u_u);
    void set_u(GLfloat* u);
protected:
    GLfloat u[2];
    GLfloat q[2];
};

class CGOne : public IWingbeat_param
{
public:
    CGOne(GLfloat q_min, GLfloat q_max, GLfloat u_d, GLfloat u_u);
    CGOne(GLfloat q_min, GLfloat q_max, GLfloat* u);
    GLfloat comp_func(GLfloat phi);
};

class CGTwo : public IWingbeat_param
{
public:
    CGTwo(GLfloat q_min, GLfloat q_max, GLfloat u_d, GLfloat u_u);
    CGTwo(GLfloat q_min, GLfloat q_max, GLfloat* u);
    GLfloat comp_func(GLfloat phi);
};

#endif
